package com.maven.captcha;


import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpSession;
import java.util.Date;


@RequestMapping("/admin")
@RestController
public class CaptchaController {

    private static final String KAPTCHA_SESSION_KEY = "KAPTCHA_SESSION_KEY";
    private static final String KAPTCHA_SESSION_DATE = "KAPTCHA_SESSION_DATE";
    private static final long TIME_OUT = 60*1000;//一分钟, 毫秒数



    @RequestMapping("/check")
    //  captcha 是你输入 的验证码
    // session 中存储着 你产生的 随机验证码 的文本
    public boolean check( String captcha, HttpSession session) {
        if(!StringUtils.hasLength(captcha))
            return false;

        // 我们这里是从 session 中取出我们 随机验证码 的 文本
        String key=(String) session.getAttribute(KAPTCHA_SESSION_KEY);
        Date data=(Date) session.getAttribute(KAPTCHA_SESSION_DATE);

        // 这里看输入的验证码是否正确
        if(captcha.equalsIgnoreCase(key)){
            System.out.println("验证码正确");
            // 这里则是看 验证码是否超时
            if(data != null || System.currentTimeMillis() - data.getTime() < TIME_OUT ){
                return true;
            }
        }
        return false;
    }
}
